#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
int main(int argc, const char *argv[])
{
    //打开文件
    //以只读方式打开文件，如果文件不存在则会进行报错
    int fd=0;
    if((fd = open("text.c", O_RDONLY)) == -1)
    {
        perror("文件打开失败");
        return -1;
    }
    printf("文件打开成功，文件描述符为：%d\n",fd);
    
    //从文件中读取数据
    char buf[1024] = {0};
    //char buf[3] = {0};
    ssize_t ret_read = 0;
    //if((ret_read = read(fd,buf,sizeof(buf))) == -1)
    if((ret_read = read(fd,buf,5)) == -1)
    {
        perror("文件读取失败");
        return -1;
    }
    //读取文件中的数据成功，则返回读到的数据个数
    //如果read函数的返回值时0，那么说明读到了文件的结尾
    printf("文件读取成功，ret_read = %ld\n",ret_read);
    printf("文件读取到的数据为：%s\n",buf);

    ret_read = read(fd,buf,5);
    printf("文件读取成功，ret_read = %ld\n",ret_read);
    printf("文件读取到的数据为：%s\n",buf);
    //如果想要读取的字节数超过了文件中的字节数
    //那么read函数的返回值就是读取到的文件中的实际的字节数
    //而不是想要读取的字节数 
    ret_read = read(fd,buf,10);
    printf("文件读取成功，ret_read = %ld\n",ret_read);
    printf("文件读取到的数据为：%s\n",buf);
    //关闭文件
    close(fd);
    return 0;
}